package com.eachonline.smart.service;

import java.util.List;

import com.eachonline.core.Pagination;
import com.eachonline.service.GenericService;
import com.eachonline.smart.model.CertificatePicture;
import com.eachonline.smart.model.SmartCourse;
import com.eachonline.smart.model.SmartUser;
import com.eachonline.smart.model.SmartUserDetail;
import com.eachonline.smart.model.SmartUserExample;

public interface SmartUserService extends GenericService<SmartUser, SmartUserExample, String> {
	
	
	/**
	 * 查询我购买的未开始课程
	 * @param example
	 * @return
	 */
	public List<SmartCourse> queryMyNoStudyCourse(String userId,int start,int pageSize,String courseType,String categroyCode);

	
	/**
	 * 查询我购买的未开始课程数量
	 * @param example
	 * @return
	 */
	public int queryMyNoStudyCourseCount(String userId,String courseType,String categroyCode);
	
	
	/**
	 * 查询我购买的已结束课程
	 * @param example
	 * @return
	 */
	public List<SmartCourse> queryMyDoneStudyCourse(String userId,int start,int pageSize,String courseType,String categroyCode);
	
	

	/**
	 * 查询我购买的未开始课程数量
	 * @param example
	 * @return
	 */
	public int queryMyDoneStudyCourseCount(String userId,String courseType,String categroyCode);
	
	/**
	 * 查询我购买的进行中课程
	 * @param example
	 * @return
	 */
   public List<SmartCourse> queryMyStudyingCourse(String userId,int start,int pageSize,String courseType,String categroyCode);
	

	/**
	 * 查询我购买的未开始课程数量
	 * @param example
	 * @return
	 */
	public int queryMyStudyingCourseCount(String userId,String courseType,String categroyCode);
	
	
	/**
	  * 校验手机验证码
	  * @param telephone
	  * @param checkCode
	  * @return
	  */
	  boolean verificationCode(String telephone,String checkCode);
	  
	  /**
	   * 根据要求查询老师列表
	   * @param site
	   * @param start
	   * @param pageSize
	   * @param teacherName
	   * @return
	   */
	  Pagination<SmartUser>  queryTeacherListBySite(String site ,int start,int pageSize,String teacherName);
 	

      /**
       * 用户申请保存资料	  
       * @param userDetail
       * @param certificatePicList
       * @throws Exception
       */
	  public void appleyUserCertificate(SmartUserDetail userDetail,
				List<CertificatePicture> certificatePicList) throws Exception ;

	  
	  /**
	   * 查询购买的课程
	   * @param userId
	   * @return
	   */
	  public List<SmartCourse>  queryMyCourses(String userId,int start,int pageSize);
}
